---
title: SAIF.Services.Appworx operations and processes
summary: Business and technical operations supported by this library.
status: draft
owner: SAIF Documentation
last_reviewed: 2026-08-21
library: SAIF.Services.Appworx
reference_type: embedded
---

# SAIF.Services.Appworx operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Submit an Appworx batch job (shared overload)](operations/submit-batch-job-shared.md) | One-call façade that selects a data portal, builds a submission instance, and submits a batch job to Appworx | Application manager needs a scheduler job run | `inDPI`, `inModule`, `inRequestor`, `inPrinter`, `inArg1`..`inArg20`, `inUseWCISDEV1AppworxForAllDevEnv` | Job request row created in the Appworx scheduler (side effect only) | [BR-001](business-rules.md#br-001-environment-based-portal-routing-to-pradt), [BR-003](business-rules.md#br-003-only-populated-argument-slots-are-transmitted) | [JOB_QUEUE](database-tables.md#job_queue) | [SQL-001](sql/SQL-001-submit-appworx-job.md) |
| [Execute the Appworx submission stored procedure](operations/submit-batch-job-instance.md) | Build and execute the BOF portal request that calls `submit_appworx_job` | Called by the shared overload, or directly by any caller holding a configured instance | Instance state — `DPI`, `ModuleName`, `Requestor`, `Printer`, `Arg1`..`Arg20` | None (`Sub`); side effect: procedure call executed | [BR-004](business-rules.md#br-004-module%2C-requestor%2C-and-printer-are-always-supplied-with-defaults), [BR-005](business-rules.md#br-005-submission-values-are-length-bounded-to-the-schedulers-contract), [BR-006](business-rules.md#br-006-submission-failures-are-wrapped-and-rethrown) | [JOB_QUEUE](database-tables.md#job_queue) | [SQL-001](sql/SQL-001-submit-appworx-job.md) |
| [Reset argument slots](operations/init-args.md) | Return all 20 argument slots to the empty state so a reused instance cannot leak arguments | Called by the constructor, by the shared overload, or explicitly by a caller reusing an instance | None (mutates instance state only) | All 20 `clsSmartString` argument fields set to empty | [BR-007](business-rules.md#br-007-argument-slots-never-carry-over-between-submissions) | — | — |

## Process flow diagram
The following diagram visualizes the primary operational flow from an application manager through job submission.

```mermaid
flowchart TD
	Start(["Application manager needs a<br>scheduler job run"]) --> S1[Submit an Appworx batch job<br>shared overload]
	S1 --> D{inUseWCISDEV1AppworxForAllDevEnv?}
	D -->|Yes| S1a["Redirect to PRADT@WCISPROD<br>or WCISDEV1"]
	D -->|No| S1b[Use caller's inDPI]
	S1a --> S2[Construct clsRequestAppworxJob<br>and reset argument slots]
	S1b --> S2
	S2 --> S3[Execute submit_appworx_job<br>stored procedure]
	S3 --> EndOk([Job row queued in JOB_QUEUE])
	S3 -->|exception| EndErr(["ApplicationException<br>rethrown"])
```

## Database interactions

| Operation | SQL | Tables | Type |
| --- | --- | --- | --- |
| [Execute the Appworx submission stored procedure](operations/submit-batch-job-instance.md) | [SQL-001](sql/SQL-001-submit-appworx-job.md) | [JOB_QUEUE](database-tables.md#job_queue) | Write |

## Failure and edge-case behavior
- Any exception from `DPI.ProcessPortalRequest` is wrapped in an `ApplicationException` and rethrown ([BR-006](business-rules.md#br-006-submission-failures-are-wrapped-and-rethrown)); there is no logging, retry, or compensating action.
- The submission is fire-and-forget ([BR-008](business-rules.md#br-008-submission-is-fire-and-forget)); callers cannot correlate the call with a specific scheduler job instance.
- The stored procedure itself silently swallows a `NO_DATA_FOUND` condition and reports success (see PR-006 in [Stored procedure operations](#stored-procedure-operations) below).

## Stored procedure operations

Operations implemented in Oracle stored procedures referenced by this library.

| Operation | Description | Source | Link |
| --- | --- | --- | --- |
| Generate job identifier | Fetches the next value of the `SO_MAX_JOBID` sequence into a local variable and uses it as the scheduler job identifier for the row about to be queued. | `submit_appworx_job` | [Details](procedures/submit-appworx-job.md#operations) |
| Queue batch job request | Inserts a single row into `JOB_QUEUE` capturing the module, requestor, generated job id, the standalone-job marker (`-1`), and all 20 positional argument slots. | `submit_appworx_job` | [Details](procedures/submit-appworx-job.md#operations) |
| Suppress no-data condition | Catches `NO_DATA_FOUND` and returns normally without queuing, converting a data-absence failure into a silent no-op. | `submit_appworx_job` | [Details](procedures/submit-appworx-job.md#operations) |
| Propagate failure | Re-raises any other exception unchanged so the calling application can surface it. | `submit_appworx_job` | [Details](procedures/submit-appworx-job.md#operations) |

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

## Sources
- `SAIF.Services.Appworx/clsRequestAppworxJob.vb`
- `SAIF.Application.Claim.Legal/LegalNet/clsCreateFileManager.vb`
- `SAIF.Application.Claim.Legal/LegalNet/clsMailDateManager.vb`
- `SAIF.Application.Claim.Legal/LegalNet/clsRequestManager.vb`
